Nonvolatile Memory Express (NVMe) is a standard defining a register interface, command set, and feature set for high-performance Peripheral Component Interconnect Express (PCIe) based solid-state drives (SSDs). An NVMe interface includes a register interface defined by the NVMe standard and allows a host computer to communicate with a non-volatile memory subsystem such as a Flash storage device. Typically, the NVMe interface is implemented as a stand-alone Peripheral Component Interconnect (PCI) device.
In a typical computing system including an NVMe interface, a host computer provides nonvolatile memory commands to a non-volatile memory subsystem including the NVMe interface. In turn, the NVMe interface processes the nonvolatile memory commands to manage data in a non-volatile memory device of the non-volatile memory subsystem. Although the NVMe standard specifies a register set and a standard command set for designing an NVMe interface, the NVMe standard leaves other implementation details open to a designer of the non-volatile memory subsystem.